﻿using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.IO;
using System.Xml;
using ClickLand.CorporacionPlaza.Presentacion.CorporacionPlazaWS;

namespace ClickLand.CorporacionPlaza.Presentacion.Controladores
{
    /// <summary> Clase que hace de controlador para el modulo de administracion de cliente </summary>
    public class ControladorAdministracionCliente
    {
        /// <summary> Metodo que invoca los servicios requeridos para agregar o modificar un cliente </summary>
        /// <param name="cliente">datos para la insercion</param>
        /// <returns>true si inserto false sino</returns>
        public bool AgregarModificarCliente(ClienteDto cliente)
        {
            try
            {
                var servicio = new CorporacionPlazaWS.CorporacionPlazaWS();
                return servicio.AgregarEditarCliente(cliente);
            }
            catch (Exception e)
            {
                
                throw e;
            }
        }


        /// <summary> Metodo que invoca el servicio que consulta los clientes dados unos parametros </summary>
        /// <param name="cliente">parametros de busqueda</param>
        /// <returns>Lista de clientes</returns>
        public List<ClienteDto> ConsultarCliente(ClienteDto cliente)
        {
            try
            {
                var servicio = new CorporacionPlazaWS.CorporacionPlazaWS();
                return new List<ClienteDto>(servicio.ConsultarCliente(cliente));
            }
            catch (Exception e)
            {
                throw e;
            }
        }


        /// <summary> Metodo que consulta los contratos de un cliente </summary>
        /// <param name="id">identificador del cliente</param>
        /// <returns>Lista con los datos</returns>
        public DataSet ConsultarContratosCliente(int id)
        {
            DataSet datos = new DataSet();
            if(ConfigurationManager.AppSettings[@"ModoDemo"].Equals("True"))
            {
                DataTable tabla = new DataTable("Contrato");
                tabla.Columns.Add("Id");
                tabla.Columns.Add("PorcentajeVenta");
                tabla.Columns.Add("FechaInicio");
                tabla.Columns.Add("FechaFin");
                tabla.Columns.Add("NombreCliente");
                tabla.Columns.Add("NombreComercial");
                tabla.Columns.Add("Establecimiento");
                tabla.Columns.Add("Estado");
                datos.Tables.Add(tabla);
                StringReader xml = new StringReader(ConfigurationManager.AppSettings[@"XmlDemoConsultaContratoCliente"]);
                tabla.ReadXml(xml);

            }
            return datos;
        }
    }
}
